﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sakura.Media.AviSynth
{
	/// <summary>
	/// 表示 CPU 的功能标志。
	/// </summary>
	[Flags]
	public enum CpuFlags
	{
		/// <summary>
		/// 无任何标志。
		/// </summary>
		None = 0,
		/// <summary>
		/// AVS 环境不使用此标志。
		/// </summary>
		Force = 0x1,
		/// <summary>
		/// 浮点运算器，在 386/486DX 中首次引入。
		/// </summary>
		Fpu = 0x2,
		/// <summary>
		/// 多媒体扩展指令集，在 P55C/K6/PII 中首次引入。
		/// </summary>
		Mmx = 0x4,
		/// <summary>
		/// 整数流指令处理单元，在 PIII/Athlon 中首次引入。
		/// </summary>
		IntegerSse = 0x8,
		/// <summary>
		/// 流指令处理单元，在 PIII/Athlon XP/MP 中首次引入。
		/// </summary>
		Sse = 0x10,
		/// <summary>
		/// 流指令处理单元版本 2，在 PIV/Hammer 中首次引入。
		/// </summary>
		Sse2 = 0x20,
		/// <summary>
		/// 3D Now!，在 K6-2 中首次引入。
		/// </summary>
		F3DNow = 0x40,
		/// <summary>
		/// 3D Now! 扩展，在 Athlon 中首次引入。
		/// </summary>
		F3DNowExt = 0x80,
		/// <summary>
		/// X86-X64 扩展指令集。
		/// </summary>
		X8664 = Sse2 | F3DNowExt
	}
}
